MVVM (Model-View-ViewModel) প্যাটার্নে Navigation এবং Routing এর ধারণা ব্যবহারকারীর ইন্টারঅ্যাকশন এবং অ্যাপ্লিকেশনের ভিউগুলোর মধ্যে সঠিকভাবে চলাচল বা স্থানান্তর পরিচালনা করতে সাহায্য করে। এই কনসেপ্ট দুটি গুরুত্বপূর্ণ, বিশেষ করে যখন আপনি একটি মাল্টি-পেজ বা মাল্টি-ভিউ অ্যাপ্লিকেশন তৈরি করেন, যেমন WPF (Windows Presentation Foundation), Xamarin, অথবা অন্যান্য ডেস্কটপ এবং মোবাইল অ্যাপ্লিকেশনে।
Navigation হল একটি অ্যাপ্লিকেশনের এক ভিউ থেকে অন্য ভিউতে যাওয়ার প্রক্রিয়া। MVVM প্যাটার্নে, ViewModel এর মাধ্যমে ভিউগুলির মধ্যে নেভিগেশন পরিচালিত হয়, যেখানে ViewModel টার্গেট ভিউ বা পেজের জন্য প্রয়োজনীয় ডেটা প্রস্তুত করে এবং View (UI) সেই ডেটা প্রদর্শন করে।
public class MainViewModel
{
public ICommand NavigateCommand { get; }
public MainViewModel()
{
NavigateCommand = new RelayCommand(NavigateToDetailsPage);
}
private void NavigateToDetailsPage()
{
// NavigationService কে কল করে DetailsPage-এ নেভিগেট করা
NavigationService.Navigate(new DetailsPage());
}
}
এখানে NavigateCommand কমান্ড ব্যবহারকারীকে DetailsPage-এ নিয়ে যাবে। NavigationService.Navigate()
একটি পদ্ধতি যা নতুন পেজ লোড করে।
Routing হল একটি প্রক্রিয়া যেখানে URL বা কোন বিশেষ পাথ বা রুটের মাধ্যমে অ্যাপ্লিকেশনের বিভিন্ন ভিউ বা পেজে পৌঁছানো হয়। সাধারণত ওয়েব অ্যাপ্লিকেশন বা SPA (Single Page Application) তে Routing ব্যবহৃত হয়, যেখানে একটি নির্দিষ্ট URL বা রাউট পাথ অনুযায়ী ভিউ বা পেজ সিলেক্ট করা হয়।
MVVM প্যাটার্নে Routing সাধারণত ViewModel এবং View এর মধ্যে সঠিক ডেটা প্রবাহ এবং নেভিগেশন নিশ্চিত করতে ব্যবহৃত হয়। ওয়েব অ্যাপ্লিকেশন বা মোবাইল অ্যাপ্লিকেশনে রাউটিং পরিচালনার জন্য, Routing টেবিল বা Route কনফিগারেশন ব্যবহৃত হতে পারে।
WPF অ্যাপ্লিকেশনে, নেভিগেশন সাধারণত Frame এবং Page কন্ট্রোলের মাধ্যমে পরিচালিত হয়। NavigationService ব্যবহার করে ভিউ পরিবর্তন করা হয়।
public class MainViewModel
{
public ICommand NavigateToDetailsCommand { get; }
public MainViewModel()
{
NavigateToDetailsCommand = new RelayCommand(NavigateToDetails);
}
private void NavigateToDetails()
{
// NavigationService ব্যবহার করে DetailsPage এ নেভিগেট করা
NavigationService.Navigate(new DetailsPage());
}
}
এই উদাহরণে, NavigateToDetailsCommand কমান্ডটি DetailsPage-এ নেভিগেট করবে।
Xamarin অ্যাপ্লিকেশনে, INavigation ইন্টারফেস ব্যবহার করে নেভিগেশন করা হয়।
public class MainViewModel
{
public ICommand NavigateToDetailsCommand { get; }
public MainViewModel()
{
NavigateToDetailsCommand = new RelayCommand(NavigateToDetails);
}
private async void NavigateToDetails()
{
// Xamarin নেভিগেশন
await Application.Current.MainPage.Navigation.PushAsync(new DetailsPage());
}
}
এখানে PushAsync() পদ্ধতি ব্যবহার করে অ্যাপ্লিকেশনটি নতুন পেজে চলে যায়।
ASP.NET Core MVC অ্যাপ্লিকেশনে, রাউটিং URL পাথের মাধ্যমে পরিচালিত হয়। Startup.cs ফাইলে রাউট কনফিগারেশন করা হয়।
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
এখানে, controller এবং action এর মাধ্যমে URL রাউটিং কনফিগার করা হয়েছে।
MVVM প্যাটার্নে Navigation এবং Routing দুটি গুরুত্বপূর্ণ কনসেপ্ট যা অ্যাপ্লিকেশনটির ভিউগুলোর মধ্যে সঠিকভাবে চলাচল এবং ডেটার সঠিক প্রবাহ নিশ্চিত করে। Navigation ব্যবহৃত হয় ভিউগুলির মধ্যে স্থানান্তর করতে, এবং Routing ব্যবহৃত হয় একটি নির্দিষ্ট URL বা পাথের মাধ্যমে ভিউ বা পেজ সিলেক্ট করতে। MVVM প্যাটার্নে এই দুটি কনসেপ্ট ইন্টারঅ্যাক্টিভ এবং ইউজার-ফ্রেন্ডলি অ্যাপ্লিকেশন ডিজাইন করতে সাহায্য করে।
common.read_more